/**
 * 随机日期
 * @param {} 
 * @returns String
 */
function randomDate() {
    let maxDateRandom = new Date().getTime();
    let minDateRandom = new Date(1970, 0, 0, 0).getTime();
    let dateRandom = getRandom(minDateRandom, maxDateRandom);
    return timeToDate(dateRandom);
}
// 生成随机数方法
function getRandom(min, max) {
    min = Math.ceil(min);
    max = Math.floor(max);
    return Math.floor(Math.random() * (max - min + 1) + min);
}
// 时间戳转普通日期格式
function timeToDate(time) {
    let date = new Date(time);
    let year = date.getFullYear();
    let month = date.getMonth() + 1;
    let day = date.getDate();
    let hour = date.getHours();
    let minute = date.getMinutes();
    let second = date.getSeconds();
    let createTime = `${year}-${zeroize(month)}-${zeroize(day)} ${zeroize(hour)}:${zeroize(minute)}:${zeroize(second)}`;
    return createTime;
}







/**
 * 获取输入时间距当前时间
 * @param {String} time （'2022-5-6 12:00:00）
 * @returns String
 */
function dateFormat(time) {
    let nowTime = new Date();
    let nowTimes = nowTime.getTime();
    let oldTime = new Date(time);
    let oldTimes = oldTime.getTime();
    let dif = (nowTimes - oldTimes) / 1000;

    if (dif < 10) return '刚刚';
    if (dif < 60) return `${dif}秒前`;
    if (dif < 60 * 60) return `${Math.floor(dif / 60)}分钟前`;
    if (dif < 60 * 60 * 60) return `${Math.floor(dif / 60 / 60)}小时前`;
    if (dif < 60 * 60 * 60 * 24) return `${Math.floor(dif / 60 / 60 / 24)}天前`;
    if (dif < 60 * 60 * 60 * 24 * 30) return `${Math.floor(dif / 60 / 60 / 24 / 30)}月前`;
    if (dif < 60 * 60 * 60 * 24 * 30 * 12) return `${Math.floor(dif / 60 / 60 / 24 / 30 / 12)}年前`;
}




/**
 * 字符串补0（传递进来的数字长度不够2位就补0)
 * @param {String\Number} data
 * @returns  过滤后的数据
 */
function zeroize(data) {
    return data < 10 ? '0' + data : data;
}



/**
 * 获取当前时间
 * @param {string} str 
 * @returns String
 */

function format(str) {
    var d = new Date()
    str = str.replaceAll('Y', d.getFullYear());
    str = str.replaceAll('m', zeroize(d.getMonth() + 1));
    str = str.replaceAll('d', zeroize(d.getDate()));
    str = str.replaceAll('H', zeroize(d.getHours()));
    str = str.replaceAll('i', zeroize(d.getMinutes()));
    str = str.replaceAll('s', zeroize(d.getSeconds()));
    return str;
}

/**
 * 随机颜色
 * @param {} 
 * @returns String
 */
function randomColor() {
    let arr = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 'A', 'B', 'C', 'D', 'E', 'F']
    let colorRandom = "#";
    for (let i = 0; i < 6; i++) {
        colorRandom += arr[Math.floor(Math.random() * (arr.length))];
    }
    return colorRandom;
}



/**
* 判断浏览器类型
* @param {} 
* @returns {str}
*/
function browser() {
    if (navigator.userAgent.indexOf('Firebox') !== -1) {
        return '火狐浏览器';
    } else if (navigator.userAgent.indexOf('Chrome') !== -1) {
        return '谷歌浏览器';
    } else if (navigator.userAgent.indexOf('Safari') !== -1) {
        return '苹果浏览器';
    } else if (navigator.userAgent.indexOf('Opera') !== -1) {
        return 'Opera浏览器';
    } else if (navigator.userAgent.indexOf('Trident') !== -1) {
        return 'IE浏览器';
    }
}



/**
 * 判断是PC还是移动端
 * @param {} 
 * @returns {str}
*/
function PcandYd() {
    data = navigator.userAgent;
    if ((data.indexOf('Mac') || data.indexOf('Windows') || data.indexOf('Linux')) || data.indexOf('win') !== -1) {
        return '电脑端';
    }
    if ((data.indexOf('iPhone') || data.indexOf('iPad') || data.indexOf('Android') || data.indexOf('Mobile')) !== -1) {
        return '移动端';
    }
}



/**
 * 判断是否是微信内置浏览器
 * @param {} 
 * @returns {str}
*/
function weixin() {
    let ua = navigator.userAgent.toLowerCase();
    if (ua.match(/MicroMessenger/i) == "micromessenger") {
        return true;
    } else {
        return false;
    }
}


/**
 * 判断标签样式
 * @param object string 举例('divObj')
 * @return string
 */
// 为了兼容，我们需要 封装一个方法 解决 获取非行间样式 的兼容问题
// 第一个参数： 元素节点
// 第二个参数： "属性名称"
function getStyle(ele, attr) {
    if (window.getComputedStyle) {
        return getComputedStyle(ele)[attr]; 
    } else {
        return ele.currentStyle[attr];
    }
}
